Package mitza.net

Source Code of mitza.net.ContentAssemblerServlet

package mitza.net;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.core4j.Enumerable;
import org.odata4j.consumer.ODataConsumer;
import org.odata4j.consumer.ODataConsumers;
import org.odata4j.core.OEntity;
import org.odata4j.core.OLink;

public class ContentAssemblerServlet extends HttpServlet {

  private static final long serialVersionUID = -7794369747885244355L;

  private ODataConsumer client;

  @Override
  public void init(ServletConfig servletConfig) throws ServletException {
    String oDataEndpoint = servletConfig.getInitParameter("ODataEndpoint");
    client = ODataConsumers.create(oDataEndpoint);
  }

  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    handleRequest(request, response);
  }

  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {
    handleRequest(request, response);
  }

  private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {
    String servletUrl = request.getRequestURI().substring(request.getContextPath().length());
    String filter = String.format("Url eq '%s'", servletUrl);
    Enumerable<OEntity> pageEntities = client.getEntities("Pages").filter(filter).expand("PageContent").top(2)
        .execute();

    int count = pageEntities.count();
    if (count == 0) {
      response.sendError(HttpServletResponse.SC_NOT_FOUND, "Not found");
      return;
    } else if (count == 2) {
      response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED,
          "Multiple resources available for the same URL");
      return;
    }

    OEntity pageContentEntity = pageEntities.first().getLink("PageContent", OLink.class).getRelatedEntity();
    if (pageContentEntity == null) {
      response.sendError(HttpServletResponse.SC_NOT_FOUND, "Not found");
      return;
    }

    String pageContent = pageContentEntity.getProperty("Content", String.class).getValue();
    PrintWriter writer = response.getWriter();
    writer.print(pageContent);
  }
}
TOP

Related Classes of mitza.net.ContentAssemblerServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.